package communication.game;

import game.Game;
import game.ServersideGame;
import communication.ComCliSrv;

import server.ServerInternals;
/**
 * Permet de fermer une partie par le createur
 * @author Jonathan Gander
 * @version 0.1
 */
public class CloseGame extends ComCliSrv {
	
	/**
	 * Pour la serialisation
	 */
	private static final long serialVersionUID = -3615938511709747635L;

	/**
	 * Le jeu
	 */
	private Game game;
	
	/**
	 * Fixe le game
	 * @param game
	 */
	public CloseGame(Game game){
		this.game = game;
		
	}
	/**
	 * Termine une partie et en notifie les joueurs
	 */
	@Override
	public void handleServerInternals(ServerInternals internals) {
		// Recup la partie sur le serveur
		ServersideGame ssg = internals.getGame(game.getId());
		// Notifie les clients de la fin de partie
		internals.sendDataToClients(ssg.getPlayersSockets(), new GameClosed());
		// Efface la partie du serveur
		internals.removeGame(game.getId());
		// Envoie la nouvelle liste des parties
		internals.sendGameList();
		
	}
}
